//这个函数用于通过后台的数据，来递归出用户路由
//利用我们定义的allRoutes(所有的子路由)与后台返回的当前用户的访问权限进行对比计算(遍历递归)

function recursionRoutes(allRoutes, menuList) {
  let userMenuList = [];
  menuList.forEach((item) => {
    //遍历menuList
    allRoutes.forEach((v) => {
      //遍历menuList
      if (item.name === v.meta.name) {
        //如果后端返回数据的名字和配置的动态路由的名字相同，在判断children
        if (item.children && item.children.length > 0) {
          //如果有children并且children中有数据，在调用这个函数递归
          v.children = recursionRoutes(v.children, item.children);
        }
        userMenuList.push(v); //将名字一样的数据push到新数组中
      }
    });
  });

  return userMenuList;
}
export default recursionRoutes;
